home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / amos / amoslist-0195.lzh / AMOSLIST / text0061.txt < prev    next >
Encoding:
Text File  |  1995-02-01  |  2.9 KB  |  72 lines

  1. > Hi boys,
  2. > I know this is not the right list... (do you know a C list?), but I need 
  3. > someone which can program in assembler and understand AmosPro very well.
  4. > Is anybody out there able to do these things?
  5. > I need someony to convert some Amos procedure in Assembler to make them 
  6. > much faster. In fact I want to make a graphic interface for POV-Ray for 
  7. > the Amiga leaving other users on different plattform wanting to buy an 
  8. > Amiga just to use it ;)
  9. > I know some geometry to start working. I have also done a "simple" 
  10. > program to build Bezier curves to use in POV-Ray with a simple 3D rotating  
  11. > session, but it is quite slow. 16 points and relative wires are updated 
  12. > no more than 5-6 times on my A1200. Think about a scene where there are 
  13. > more than 100 lines and points and all will freeze!
  14. > There is no way to use the math copro in AMOS?
  15. > So I need someone to translate my AMOSPro routine in Assembler and then 
  16. > he must tell me how to call the soubroutine from AMOS.
  17. > If he knows a little of mathematics and geometry (matricial) would be very 
  18. > appreciated.
  19. >             NOTE: NO MONEY!!!!!
  20. > I don't want to make money after a free! (Which is also very good!).
  21. > Thanks
  22. > M&F
  23.  
  24. Hello!
  25.  
  26. I have programmed a protein (wire-frame) viewing program
  27. and I have experienced the same speed problems as you have.
  28. After having optimized the code, I have started to translate
  29. some routines in Assembler. Unfortunately, I was quite
  30. disappointed at the speed-increase. Excepted a simple
  31. Bubblesort routine which I use for a Z-sort and which
  32. ran about 40 times faster, the rest did not even run
  33. twice as fast as before. I'm not an Assembler expert, but
  34. I tried to use registers and keep the data in the cache. I
  35. don't believe that a good Assembler programmer would make it
  36. run much faster.
  37.  
  38. Anyway, as the program rotates about 550 lines 5 times per
  39. second on my A4000/040 and it did maybe 300 lines before
  40. I used my Assembler routines, I guess that you could speed
  41. up your actual program a lot by simply optimizing it!
  42. (An A1200 can't be 15-20 times slower than a A4000, can it?)
  43.  
  44. First, use only interger arithmetics by multiplying all coordinates
  45. by 2^x with x being at least 10 (depends on the accuracy needed).
  46. Before displaying it on the screen you will have to divide it again by 
  47. this number, but fortunately both, multiplication and division can
  48. be done with the shift operators of AmosPro (Asr.l and Asl.l, I think.
  49. I have Amos Creator where they don't exist.)
  50. Do also use the commands Add and Sub where possible. They are all
  51. translated pretty much 1:1 in Assembler, at least I guess so.
  52.  
  53. Secondly, use the TurboLib extension! The F_draw command is about
  54. twice as fast as the AMOS command which makes an enormous speed
  55. increase (in the current version of my program, 50% of the time
  56. is consumed in the drawing routine!). You can also use the fast
  57. command to clear the bitplanes.
  58.  
  59. I have never tested Amos3D, but maybe this could also be of some
  60. help? Anyone?
  61.  
  62. Good luck,
  63.  
  64.     Chris
  65.  
  66.